package com.wei.czz.framework.admin.service;

import com.wei.czz.common.dto.admin.PoetryDto;
import com.wei.czz.common.tool.PageDto;
import com.wei.czz.common.vo.common.PoetryVo;

import java.util.concurrent.Future;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wei
 * date: 2021-06-07 15:56:00
 * className: PoetryService 用户诗意文字操作请求服务接口
 * version: 1.0
 * description:
 */
public interface PoetryService {

    /**
     * 保存新的用户诗意信息
     * @param poetryVo 诗意信息参数对象
     */
    void savePoetry(PoetryVo poetryVo);

    /**
     * 分页获取用户诗意文字列表
     * @param page  当前页码
     * @param limit 当前页显示个数
     */
    PageDto<PoetryDto> getPoetryList(Long page, Long limit);

    /**
     * 获取用户使用的诗意文字信息
     */
    PoetryDto getUsePoetryInfo(Long optUserId);

    /**
     * 异步查询用户是否使用的诗意信息操作
     */
    Future<Boolean> getUseFlagInPoetryOnAsync(Long optUserId);

    /**
     * 修改用户诗意文字操作
     * @param poetryVo 诗意文字信息对象
     */
    void updatePoetry(PoetryVo poetryVo);

    /**
     * 用户设置并使用诗意信息操作
     * @param poetryId 用户诗意信息主键
     */
    void usingPoetry(String poetryId);

    /**
     * 用户取消使用诗意信息操作
     * @param poetryId 用户诗意信息主键
     */
    void cancelUsingPoetry(String poetryId);

    /**
     * 用户删除诗意信息操作
     * @param poetryId 用户诗意信息主键
     */
    void deletePoetry(String poetryId);
}
